 /*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pbl_servidor;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author tayane
 */
public class Arquivo {
    
    //ALTERAR ESSE CAMINHO AI, POIS CADA PC TEM SEU CAMINHO DIFERENTE!
      //String caminhoArquivoUsuarios = "/home/tayane/Documentos/BD_AgendaEletronica_Usuarios.dat";
      //String caminhoArquivoCompromissos = "/home/tayane/Documentos/BD_AgendaEletronica_Compromissos.dat";
      String caminhoArquivoUsuarios = "D:/ArquivosPBL/BD_AgendaEletronica_Usuarios.dat";
      String caminhoArquivoCompromissos = "D:/ArquivosPBL/BD_AgendaEletronica_Compromissos.dat";
    public Arquivo() { //Precisa de construtor não...
    }

    public void GravaListaUsuariosNoArquivo(List<Usuario> listaUsuario) {

        FileOutputStream arq = null;
        ObjectOutputStream out = null;

        try {
            //arquivo no qual os dados vao ser gravados
            arq = new FileOutputStream(this.caminhoArquivoUsuarios);
            //objeto que vai escrever os dados
            out = new ObjectOutputStream(arq);

            //escreve todos os dados
            out.writeObject(listaUsuario);

        } catch (IOException ex) {

            ex.printStackTrace();

        } finally {

            try {

                arq.close();
                out.close();

            } catch (IOException ex) {

                ex.printStackTrace();

            }
        }
    }

    public List<Usuario> CarregaListaUsuariosDoArquivo() {

        FileInputStream arqLeitura = null;
        ObjectInputStream in = null;
        List<Usuario> listaUsuariosArquivo = new ArrayList<Usuario>();
        File arquivoBD = new File(this.caminhoArquivoUsuarios);

        if (arquivoBD.exists()) {


            try {
                //arquivo onde estao os dados serializados
                arqLeitura = new FileInputStream(arquivoBD);

                //objeto que vai ler os dados do arquivo
                in = new ObjectInputStream(arqLeitura);

                //recupera os dados
                listaUsuariosArquivo = (List<Usuario>) in.readObject();

            } catch (ClassNotFoundException ex) {

                ex.printStackTrace();
                System.out.println("Erro na leitura do arquivo1");
                System.out.println(ex.getMessage());

            } catch (IOException ex) {

                ex.printStackTrace();
                //System.out.println("Erro na leitura do arquivo2");
                //System.out.println(ex.getMessage());

            } finally {

                try {

                    arqLeitura.close();
                    in.close();

                } catch (IOException ex) {

                    System.out.println("Erro ao fechar arquivo");
                    ex.printStackTrace();

                }
            }
        }
        return listaUsuariosArquivo;
    }
    
        public void GravaListaCompromissosNoArquivo(List<Compromisso> listaCompromisso) {

        FileOutputStream arq = null;
        ObjectOutputStream out = null;

        try {
            //arquivo no qual os dados vao ser gravados
            arq = new FileOutputStream(this.caminhoArquivoCompromissos);
            //objeto que vai escrever os dados
            out = new ObjectOutputStream(arq);

            //escreve todos os dados
            out.writeObject(listaCompromisso);

        } catch (IOException ex) {

            ex.printStackTrace();

        } finally {

            try {

                arq.close();
                out.close();

            } catch (IOException ex) {

                ex.printStackTrace();

            }
        }
    }

    public List<Compromisso> CarregaListaCompromissosDoArquivo() {

        FileInputStream arqLeitura = null;
        ObjectInputStream in = null;
        List<Compromisso> listaCompromissosArquivo = new ArrayList<Compromisso>();
        File arquivoBD = new File(this.caminhoArquivoCompromissos);

        if (arquivoBD.exists()) {


            try {
                //arquivo onde estao os dados serializados
                arqLeitura = new FileInputStream(arquivoBD);

                //objeto que vai ler os dados do arquivo
                in = new ObjectInputStream(arqLeitura);

                //recupera os dados
                listaCompromissosArquivo = (List<Compromisso>) in.readObject();

            } catch (ClassNotFoundException ex) {

                ex.printStackTrace();
                System.out.println("Erro na leitura do arquivo1");
                System.out.println(ex.getMessage());

            } catch (IOException ex) {

                ex.printStackTrace();
                //System.out.println("Erro na leitura do arquivo2");
                //System.out.println(ex.getMessage());

            } finally {

                try {

                    arqLeitura.close();
                    in.close();

                } catch (IOException ex) {

                    System.out.println("Erro ao fechar arquivo");
                    ex.printStackTrace();

                }
            }
        }
        return listaCompromissosArquivo;
    }
    
}
